home *** CD-ROM | disk | FTP | other *** search
- {
- Yes, I should have been able to imagine myself that there will be at
- least _one_ person out there who asks for the Fade_VerticalSplitClose
- after he has tried the Fade_HorizontalSplitClose for AniVGA V1.2,
- couldn't I?... <sigh>
- Well, here it is; for the bored ones amongst us, here's a more
- challenging question:
-
- What do you expect to see when you remove the comment brackets of the
- line in the main body part of the snippet below? --Try to answer that
- question w/o further trying! :-)
-
- kai.rohrbacher@logo.ka.sub.org
- }
-
- {$A+,B-,D+,L+,N-,E-,O-,R-,S-,V-,G-,F-,I-,X+}
- {$M 32768,0,655360}
- PROGRAM Example8E;
- USES ANIVGA;
-
- CONST pic='DOG1.PIC'; {or any other PIC}
- picPal1='DOG1.PAL';
- {$IFDEF VER60}
- Seg0040:WORD=$40;
- {$ENDIF}
-
- PROCEDURE VerticalSplitClose(pa,time:WORD);
- { in: pa = page, which contents will be made visible }
- { time = time (in milliseconds) for this action (approx.) }
- {out: - }
- {rem: the contents of page "pa" has been copied to page 1-PAGE }
- CONST n = (YMAX+1) DIV 2; {number of executions of the delay loop}
- VAR counter:WORD;
- ClockTicks:^LONGINT; {LONGINT ABSOLUTE $40:$6C geht nicht}
- t: LONGINT;
- temp:REAL;
- mitte,lines:INTEGER;
-
- p:POINTER;
-
- BEGIN
- ClockTicks:=Ptr(Seg0040,$6C);
- t := ClockTicks^;
- counter := 0;
- temp := 0.0182*time/n;
-
- mitte:=YMAX SHR 1;
- FOR lines:=0 TO mitte DO
- BEGIN
- p:= GetImage(StartVirtualX,StartVirtualY+mitte-lines,
- StartVirtualX+XMAX,StartVirtualY+mitte,pa);
- PutImage(StartVirtualX,StartVirtualY,p,1-PAGE);
- FreeImageMem(p);
-
- p:= GetImage(StartVirtualX,StartVirtualY+mitte+1,
- StartVirtualX+XMAX,StartVirtualY+mitte+1+lines,pa);
- PutImage(StartVirtualX,StartVirtualY+YMAX-lines,p,1-PAGE);
- FreeImageMem(p);
-
- INC(counter);
- WHILE (ClockTicks^ < (t+counter*temp)) DO BEGIN END;
- END;
-
- {Cleanup:}
- (* IF Odd(YMAX+1)
- THEN CopyPage(pa,1-PAGE); *)
- END;
-
-
- VAR pal1:Palette;
- i:WORD;
- BEGIN
- InitGraph;
- StartVirtualX:=20; StartVirtualY:=10;
- LoadBackgroundPage(pic);
- LoadPalette(picPal1,0,pal1); SetPalette(pal1,FALSE);
- FillPage(1-Page,0);
- FOR i:=1 TO 20000 DO
- PutPixel(Random(Succ(XMAX)),Random(Succ(YMAX)),Random(256));
-
- VerticalSplitClose(BACKGNDPAGE,2000);
-
- (* So what do you expect when uncommenting the following line??? *)
- (* VerticalSplitClose(1-PAGE,2000); *)
-
- CloseRoutines;
- END.